package com.fengkai.filepost.pdfoutstream.test.ODsolutions;

import org.junit.Test;

/**
 * @author Fengkai
 * @creat 2023/4/10
 * 停车场有一横排车位，0 代表没有停车，1 代表有车。至少停了一辆车在车位上，也至少有一个空位没有停车。
 * 为了防剐蹭，需为停车人找到一个车位，使得距停车人的车最近的车辆的距离是最大的，返回此时的最大距离。
 * 输入描述:
 * 1、一个用半角逗号分割的停车标识字符串，停车标识为 0 或 1，0 为空位，1 为已停车。
 * 2、停车位最多 100 个。
 * 输出描述:
 * 输出一个整数记录最大距离。
 */
public class FindCarPark {

    public static void main (String[] args) {
        System.out.println(getPark("0,0,0,0,0,0,0"));

    }

    public static int getPark(String input){
        if (input.contains("0") && input.contains("1")) {
            int result = 0;
            String[] split = input.split(",");
            int size = 0;
            out:
            for (int i = 0; i < split.length; i++) {
                if (Integer.parseInt(split[i]) == 0) {
                    int left = i;
                    int right = i;
                    while (true) {
                        if (left > 0) {
                            left--;
                        }
                        if (right < split.length - 1) {
                            right++;
                        }
                        size++;
                        if (!(split[left].equals("0") && split[right].equals("0"))) {
                            result = Math.max(result, size);
                            size = 0;
                            continue out;
                        }
                    }
                }
            }
            return result;
        }else if (input.contains("1")){
            return -1;
        }else{
            return input.replaceAll("," ,"").length() - 1;
        }
    }
}
